<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function formate(url, data) {
            let type = "get";
            if (arguments.length === 1) {
                type = "post";
                data = url;
                url = "";
            }
            let start = true;
            for (let key in data) {
                if (type === "get") {
                    url += (start ? "?" : "&") + key + "=" + data[key];
                } else if (type === "post") {
                    url += (start ? "" : "&") + key + "=" + data[key];
                }
                start = false;
            }
            return url;
        }

        function ajax(method, url, _callback, data) {
            if (method === "jsonp") {
                data = data || {};
                data.jsonpcallback = data.jsonpcallback ? data.jsonpcallback : "callcack";

                let script = document.createElement("script");
                script.src = formate(url, data);
                document.body.appendChild(script);
                window[data.jsonpcallback] = function (data) {
                    _callback(data);
                }
                script.onload = function () {
                    script.remove();
                }
            }

            else {
                let xhr = new XMLHttpRequest();
                xhr.open(method, method.toLowerCase() === "get" ? formate(url, data) : url);
                if (method.toLowerCase() === "post") {
                    xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
                }
                xhr.send(method.toLowerCase() === "post" ? formate(data) : null);
                xhr.onreadystatechange = () => {
                    if (xhr.readyState === 4 && /^2\d{2}$/) {
                        callback(xhr.responseText)
                    }
                }
            }
        }
        ajax("jsonp", "https://api.gogoup.com/p1/data/recommend", function (data) {
            console.log(data)
        })
    </script>
</body>

</html>